package javase2.day01.demo01;

import java.util.Random;

/*

equals(Object obj)
指示一些其他对象是否等于此
源码：
public boolean equals(Object obj) {
        return (this == obj);
    }
    参数列表：Object obj 任意对象
    返回值类型：布尔true/false
    方法体：==比较运算符
    this对象调用方法，那个对象调用此方法，那个对象就是this
    obj传入的对象
    p1.equals(p2)----->就是this.equals(obj)
    所以比较的是地址值。
    没有多大现实意义所以需要重写。
 */
public class DemoObjectEquals {
    public static void main(String[] args) {
        Person p1=new Person("孙悟空",10);
        Person p2=new Person("猪八戒",6);
        Person p3=new Person("猪八戒",6);

        System.out.println("p1"+p1);
        System.out.println("p2"+p2);

        boolean result1=p1.equals(p2);
        System.out.println(result1);

        boolean result2=p2.equals(p3);
        System.out.println(result2);

        //错误的类型比较要使用instanceof判断
        Random r=new Random();
        boolean result3=p1.equals(r);
        System.out.println(result3);

/*
p1Person{name='孙悟空', age=10}
p2Person{name='猪八戒', age=6}
false
true
false
 */

    }
}
